﻿namespace _06_Snake
{
    internal class Food
    {
        public Pos pos;
        int width;
        int height;
        Random rand;
        Snake snake;

        public Food(int width, int height)
        {
            this.width = width;
            this.height = height;
            rand = new Random();
        }
        public void Spawn()
        {
            // 随机数生成 Random.Next(min,max); 左包含 右不包含
            pos.x = rand.Next(1, width - 1);
            pos.y = rand.Next(1, height - 1);
            // 不让食物在蛇身上生成
            // 如果食物生成在蛇身上 那就重新生成
            if (snake.OnBody(pos))
            {
                Spawn();  // 递归
                // 递归不能随便乱用 必须确保能脱出 否则非常占用内存空间
            }
        }

        

        public void Init(Snake snake)
        {
            this.snake = snake;
            Spawn();
        }

        public void Input()
        {

        }

        public void Update()
        {

        }

        public void Render()
        {
            Console.SetCursorPosition(pos.x, pos.y);
            Console.WriteLine("M");
        }

        public void End()
        {

        }
    }
}
